Перейти к основному содержимому

9.05. Программа на Python

Родителям и детям
Языки программирования
Что такое язык программирования
Как скачать и установить Python
Программа на Python
Объявим переменную
print(переменная)

Часть 1. Что такое язык программирования

Представьте, что вы хотите научить кого-то выполнять сложные действия: например, собрать конструктор по инструкции, приготовить суп или нарисовать картину по клеточкам. Для этого вам понадобится не просто сказать «сделай это», а объяснить пошагово, чётко, без двусмысленностей — иначе результат может получиться совсем не таким, как вы ожидали.

Компьютер — как раз такой исполнитель. Он невероятно быстр, точен и никогда не устаёт… но он не понимает человеческую речь так, как понимает её человек. Он не умеет «догадываться», «додумывать» или «прощать ошибки в формулировках». Чтобы дать компьютеру команду, нужно использовать особый язык — язык программирования.

Что такое язык программирования?

Язык программирования — это система правил и соглашений, с помощью которых люди описывают последовательность действий для компьютера. Это не просто «код», как иногда думают. Это — язык общения между человеком и машиной.

Как и в человеческих языках, в языках программирования есть:

  • алфавит — набор допустимых символов (буквы, цифры и знаки препинания, разрешённые в коде);
  • лексика — слова и конструкции, которые имеют определённое значение (например, print, if, while);
  • семантика — смысл этих конструкций;
  • синтаксис — правила, как правильно соединять слова между собой, чтобы компьютер понял, что от него требуется.

Но, в отличие от человеческих языков, языки программирования не допускают двусмысленности. Даже одна лишняя запятая или пробел в неправильном месте могут привести к ошибке. Это не каприз — это необходимость. Компьютер не «подумает» за вас. Он просто выполнит то, что вы ему точно сказали.


Почему Python?

Существует сотни языков программирования. У каждого — своя история, своя область применения, своя аудитория. Среди них: C++, Java, JavaScript, Rust, PHP, Swift… и Python.

Python появился в 1991 году. Его создатель, Гвидо ван Россум, задумал его как язык, на котором было бы приятно и легко писать, даже если вы только начинаете. Он хотел, чтобы код читался почти как английский текст — и у него получилось.

Сегодня Python — один из самых популярных языков в мире. Его используют:

  • учёные для анализа данных и моделирования;
  • инженеры для управления роботами и спутниками;
  • разработчики веб-сайтов и мобильных приложений;
  • специалисты по безопасности для защиты систем;
  • и, что особенно важно для нас, — ученики и учителя, потому что Python — прекрасный инструмент для первого знакомства с программированием.

Но давайте разберём, почему он так подходит для начала — и что значит каждая из тех фраз, которые часто о нём говорят.


Python — высокоуровневый язык. Что это значит? А какие ещё есть уровни?

Здесь важно понять: уровень языка — это не про "сложность для человека", а про степень удалённости от "железа", то есть от физических компонентов компьютера (процессора, памяти, шин данных).

Представьте, что вы хотите попросить кого-то сварить кашу.

  • Низкоуровневый язык — это как дать инструкцию на уровне физики и химии:
    «Налей 200 мл воды в металлический сосуд. Поднеси сосуд к источнику тепла. Увеличь температуру источника до 100 °C и удерживай её в течение 5 минут…»
    Такой язык близок к тому, как «думает» процессор — и потому очень мощный, но требует глубокого понимания устройства компьютера. Пример — язык асемблера.

  • Высокоуровневый язык, напротив, говорит на уровне задач, а не деталей:
    «Свари овсянку по инструкции на упаковке»
    — и доверяет системе самой решить, как именно это сделать: сколько воды налить, какую мощность поставить, когда выключить.

Python — высокоуровневый язык. Это значит, что вы можете сосредоточиться на логике задачи («посчитать сумму чисел», «нарисовать квадрат», «спросить имя и поздороваться»), а не на том, как процессор будет переключать миллиарды транзисторов, чтобы выполнить вашу просьбу.

Это огромное преимущество для начинающих: меньше шансов запутаться в технических деталях, больше — на понимании сути программирования.


Python — интерпретируемый язык. А что тогда компилируемый?

Когда вы напишете программу на Python, компьютер не может сразу её выполнить. Ваш текст — это просто файл с символами. Его нужно перевести в команды, которые поймёт процессор.

Существует два основных способа такого перевода: компиляция и интерпретация.

  • Компиляция — это как перевести книгу целиком перед чтением. Сначала программа (компилятор) читает весь ваш код, преобразует его в машинный язык (набор нулей и единиц), и создаёт отдельный исполняемый файл (.exe, .bin и т.п.). Только после этого вы можете запустить программу. Примеры: C, C++, Go.

  • Интерпретация — это как переводчик на уроке: он слушает вас построчно и сразу передаёт смысл слушателю. Интерпретатор Python читает ваш код строка за строкой, сразу же превращает её в машинные команды и выполняет. Программа не становится отдельным файлом — она «живёт» только пока работает интерпретатор.

Почему это хорошо для новичков?
— Ошибки видны сразу: если в пятой строке ошибка — интерпретатор остановится на пятой строке и скажет, что не так.
— Не нужно ждать длительной компиляции перед каждым запуском — написали строку — запустили — увидели результат.
— Можно экспериментировать в реальном времени (об этом — дальше, в разделе про IDLE и онлайн-редакторы).

Python — интерпретируемый язык. За это отвечает программа под названием интерпретатор Python — она и «читает» ваш код, и «выполняет» его.


Python — скриптовый язык. А чем он отличается от "обычного"?

Слово скрипт происходит от английского script — «сценарий». Сценарий фильма — это последовательность действий, которые актёры исполняют от начала до конца. Так и скрипт: это небольшая программа, которая автоматизирует какую-то задачу и запускается по требованию.

Скриптовые языки (к ним относятся Python, JavaScript, PHP, Bash) обычно:

  • не требуют сложной подготовки перед запуском (в отличие, например, от C++, где нужно собрать проект, подключить библиотеки и т.д.);
  • хорошо взаимодействуют с операционной системой (могут копировать файлы, запускать другие программы, читать папки);
  • часто используются для «склеивания» других программ или автоматизации рутинных действий.

Python изначально создавался как скриптовый язык — и до сих пор отлично справляется с этой ролью. Но со временем он стал настолько мощным и гибким, что на нём пишут не только скрипты, но и огромные системы: от веб-серверов до искусственного интеллекта.

То есть:
✅ Python можно использовать как скриптовый язык — быстро написать небольшую программку и запустить.
✅ Но при этом он не ограничен этим — он масштабируется вместе с вашими знаниями.


Как скачать и установить Python?

Python можно установить на любой компьютер: с Windows, macOS или Linux. И — что важно — это бесплатно. Python распространяется по открытой лицензии, и его разработка поддерживается сообществом по всему миру.

Шаг 1. Перейдите на официальный сайт
Откройте в браузере: https://www.python.org
(Обязательно проверьте: адрес начинается с https:// и содержит python.org — это защита от подделок.)

Шаг 2. Найдите кнопку загрузки
На главной странице вы увидите большую жёлтую кнопку: Download Python 3.x.x (например, Download Python 3.12.3). Нажмите её.

💡 Почему именно Python 3, а не Python 2?
Python 2 — устаревшая версия, которая больше не поддерживается. Все новые книги, курсы и библиотеки используют Python 3. Никогда не устанавливайте Python 2 — это как учиться на старом учебнике, в котором уже исправлены ошибки.

Шаг 3. Запустите установщик
После загрузки откройте файл python-3.x.x.exe (на Windows) или .pkg (на Mac).
❗ Очень важный момент: на первом экране установщика обязательно поставьте галочку напротив
☑ Add Python to PATH
— и только потом нажимайте «Install Now». Если вы этого не сделаете, компьютер не узнает, где искать Python, и вы не сможете запускать программы из командной строки.

Шаг 4. Проверьте установку
После завершения установки откройте:

  • на Windows: Командную строку (Win + R, введите cmd, нажмите Enter);
  • на Mac: Терминал (через Spotlight: нажмите Cmd + Пробел, введите Terminal).

И напишите команду:

python --version

Если всё прошло успешно, вы увидите что-то вроде:

Python 3.12.3

Поздравляем — Python установлен!


Из чего состоит пакет Python? Интерпретатор и IDLE

Когда вы устанавливаете Python, вместе с ним приходят несколько важных компонентов. Два из них — самые важные для старта:

1. Интерпретатор Python (python.exe или python)

Это «движок», который читает и выполняет ваш код. Именно его вы вызываете, когда пишете в командной строке python имя_файла.py. Без интерпретатора Python — просто текст в файле.

2. IDLE — Integrated Development and Learning Environment

Это простейшая среда разработки, которая идёт в комплекте с Python. Она состоит из двух частей:

  • Python Shell — интерактивная консоль. Здесь можно вводить команды по одной и сразу видеть результат. Отлично подходит для экспериментов.
  • Редактор кода — окно, похожее на Блокнот, но с подсветкой синтаксиса. В нём удобно писать программы и сохранять их в файлы .py.

IDLE — не самая мощная среда (позже вы, возможно, перейдёте на VS Code или PyCharm), но для первых шагов она идеальна: простая, лёгкая, и в ней не запутаешься.


Программа на Python: первый код

Теперь переходим к самому интересному — к написанию первой программы.

Шаг 1. Объявим переменную

Переменная — это именованная коробочка, в которую можно положить какое-то значение, а потом использовать его позже.

Например:

приветствие = "Привет, Вселенная IT!"

Здесь:

  • приветствие — имя переменной (может быть почти любым, главное — без пробелов и с учётом регистра: Приветствие и приветствие — разные вещи);
  • = — оператор присваивания (не «равно», а «положи в коробочку»);
  • "Привет, Вселенная IT!" — строка текста. Обратите внимание: она заключена в кавычки — иначе Python подумает, что Привет — это команда, и выдаст ошибку.

Шаг 2. Покажем содержимое переменной

Чтобы увидеть, что лежит в переменной, используем команду print() — от английского print («напечатать»). В программировании «напечатать» — значит «вывести на экран».

Добавим вторую строку:

приветствие = "Привет, Вселенная IT!"
print(приветствие)

Теперь у нас есть полноценная программа — две строки кода.

Шаг 3. Сохраним в файл .py

  1. Откройте IDLE (найдите в меню «Пуск» или через поиск: IDLE).
    Откроется окно Python Shell.

  2. В меню выберите File → New File.
    Появится чистое окно редактора.

  3. Введите туда наши две строки:

приветствие = "Привет, Вселенная IT!"
print(приветствие)
  1. Сохраните файл:
    File → Save As…
    Выберите папку (например, Документы/IT_Universe),
    введите имя: приветствие.py
    (обязательно с расширением .py — иначе компьютер не поймёт, что это программа на Python).

Шаг 4. Запустим из командной строки

  1. Откройте командную строку (Windows) или терминал (Mac).
  2. Перейдите в папку, где лежит файл. Например, если файл в Документы/IT_Universe, напишите:
cd Документы/IT_Universe

(на Windows пути разделяются обратным слешем \, но в командной строке лучше использовать / — она сама поймёт).

  1. Запустите программу:
python приветствие.py

Вы увидите:

Привет, Вселенная IT!

✅ Работает! Вы только что создали, сохранили и запустили свою первую программу.


Альтернативные способы запуска

Не у всех есть возможность устанавливать программы на компьютер (например, в школе могут быть ограничения). Хорошая новость: Python можно использовать и онлайн — без установки.

Вариант 1: Edublocks (для самых маленьких, 8–12 лет)

https://edublocks.org — это визуальная среда, похожая на Scratch. Здесь код собирается из блоков-пазлов, и при этом сразу показывается, как это выглядит на настоящем Python. Отлично подходит для первого знакомства: дети видят структуру языка, но не пугаются синтаксиса.

Вариант 2: Trinket (для 10–16 лет)

https://trinket.io/python3 — онлайн-редактор с настоящим Python. Можно писать код, нажимать «Run» — и видеть результат прямо в браузере. Есть поддержка графики (черепашья графика), звука, даже простых игр. Учителя могут делиться ссылками на задания — и ученики сразу начинают работать.

Вариант 3: IDLE (о нём уже говорили)

Если Python установлен, IDLE всегда под рукой. Чтобы запустить программу из редактора IDLE — просто нажмите F5 или выберите Run → Run Module. Программа выполнится в окне Shell.

Вариант 4: Visual Studio Code (для тех, кто хочет «как профессионалы»)

Visual Studio Code — бесплатный редактор от Microsoft. Он не для программирования «из коробки», но с расширениями превращается в мощную среду.

Как настроить:

  1. Скачайте и установите VS Code.
  2. Откройте его, зайдите в раздел расширений (иконка квадратиков слева).
  3. Найдите и установите расширение Python (официальное, от Microsoft).
  4. Перезапустите VS Code.
  5. Теперь вы можете создавать файлы .py, и редактор будет:
    • подсвечивать синтаксис;
    • подсказывать команды;
    • запускать программу прямо по кнопке (зелёный треугольник вверху справа или через Ctrl+F5).

Это уже «взрослый» инструмент — но он настраивается постепенно, и начинающему ничего не мешает в нём писать первую программу.


Часть 2. Данные: что кладут в переменные, и как программа с ними работает

В первой части мы создали переменную приветствие и поместили в неё текст. Но переменные — это не только для слов. Это универсальные «коробочки», и в них можно класть разные виды информации. Чтобы компьютер не запутался, Python различает, какого типа данные лежат в переменной. Это похоже на сортировку игрушек: машинки — в одну коробку, кубики — в другую, мягкие мишки — в третью. Так и Python: числа — одни правила, текст — другие, истинность — третьи.

Что такое тип данных?

Тип данных — это характеристика значения, которая определяет:

  • какие операции можно с ним делать;
  • сколько памяти он занимает;
  • как он представлен внутри компьютера.

Нам не нужно знать всё про внутреннее устройство — достаточно понимать, как с этим работать. В Python основные типы, с которыми вы столкнётесь в начале, — это:

ТипПримерКак писатьЧто значит
Целое число (int)42, -7, 0просто цифрыЧисла без дробной части. Их можно складывать, вычитать, умножать, делить.
Дробное число (float)3.14, -0.001, 2.0с точкой, даже если целое (2.0)Числа с плавающей запятой. Всегда пишутся с точкой, а не запятой! Иначе будет ошибка.
Строка (str)"Привет", 'Мир', ""в одинарных ' ' или двойных " " кавычкахЛюбой текст. Даже "123" — это не число, а текст! Строки можно склеивать, но не складывать арифметически.
Логическое значение (bool)True, Falseтолько так, с большой буквыОтветы на вопросы «да/нет», «верно/неверно». Нужны для принятия решений.

Обратите внимание:
🔹 42 и "42"разные вещи.
🔹 5 + 3 даёт 8, а "5" + "3" даёт "53" — потому что + для строк означает склейку (конкатенация).


Практика: типы в действии

Давайте напишем небольшую программу, которая покажет разницу:

# Числа
возраст = 12
через_пять_лет = возраст + 5
print("Сейчас мне", возраст, "лет.")
print("Через пять лет будет", через_пять_лет)

# Строки
имя = "Анна"
приветствие = "Привет, " + имя + "!"
print(приветствие)

# Ошибка: нельзя сложить число и строку
# print("Мне " + возраст + " лет") # ← так нельзя!
# Правильно — превратить число в строку:
print("Мне " + str(возраст) + " лет") # str() — "сделай строкой"

Здесь важный момент — функция str(). Она преобразует значение в строку. Аналогично есть int() (в целое число) и float() (в дробное). Это называется приведение типов.

💡 Почему нельзя просто print("Мне " + возраст + " лет")?
Потому что Python не знает: вы хотите посчитать что-то (5 + 3 = 8) или склеить ("5" + "3" = "53") — и не будет угадывать. Он требует: если склеиваете строки, то все части должны быть строками. Отсюда и str(возраст).


Ввод от пользователя: функция input()

До сих пор программа сама решала, что выводить. Но настоящие программы взаимодействуют с человеком. Для этого есть функция input() — она ожидает, пока пользователь что-то наберёт и нажмёт Enter.

Пример:

имя = input("Как тебя зовут? ")
print("Приятно познакомиться,", имя + "!")

Что происходит:

  1. На экране появляется вопрос: Как тебя зовут?
  2. Программа ждёт — курсор мигает.
  3. Вы вводите, например, Тимур и жмёте Enter.
  4. Слово "Тимур" помещается в переменную имя.
  5. Выполняется print(...) — и вы видите:
    Приятно познакомиться, Тимур!

⚠️ Важно: всё, что возвращает input(), — это строка (str).
Даже если вы введёте 12, это будет "12", а не число 12.

Поэтому, если хотим работать с числом — нужно преобразовать:

возраст = input("Сколько тебе лет? ")
# возраст — строка! нельзя прибавить 5
возраст_число = int(возраст) # превращаем в целое число
через_десять = возраст_число + 10
print("Через десять лет тебе будет", через_десять)

А что, если введут не число? Например, двенадцать?
Тогда int("двенадцать") вызовет ошибку — и программа остановится.

Это не баг, а фича: компьютер честно говорит: «Я не могу превратить это в число». Позже вы научитесь «ловить» такие ошибки и аккуратно на них реагировать — но пока запомните: всегда думайте, какой тип ожидаете от пользователя.


Условия: как программа принимает решения

Иногда нужно, чтобы программа вела себя по-разному в зависимости от ситуации. Например:

  • если возраст < 13 — показать «детский» интерфейс;
  • если ответ на вопрос верный — написать «Молодец!»;
  • если температура > 30 — включить кондиционер.

Для этого используется условная конструкция if (от английского if — «если»).

Простой пример:

возраст = int(input("Сколько тебе лет? "))

if возраст < 13:
print("Ты ещё юный исследователь!")
else:
print("Ты уже опытный программист!")

Разберём по частям:

  • if возраст < 13: — условие. Двоеточие в конце обязательно.
  • Следующая строка обязательно с отступом (четыре пробела или один таб). Это не прихоть — в Python отступы определяют, какие строки относятся к условию.
  • else: — «иначе». Тоже с двоеточием и отступом.

Вот как это работает:

  1. Программа проверяет: правда ли, что возраст < 13?
  2. Если да — выполняет блок под if.
  3. Если нет — выполняет блок под else.

Можно добавить больше вариантов с elif (сокращение от else if — «иначе, если»):

возраст = int(input("Сколько тебе лет? "))

if возраст < 7:
print("Самое время начать с игр-конструкторов!")
elif возраст < 13:
print("Ты в зоне активного роста — пробуй всё!")
elif возраст < 17:
print("Уже можно создавать серьёзные проекты.")
else:
print("Добро пожаловать в мир профессиональной разработки!")

Обратите внимание: проверка идёт сверху вниз, и выполняется только один блок — первый, для которого условие оказалось истинным.

Логические операторы

Условия можно усложнять с помощью:

  • and — «и»: возраст > 10 and возраст < 15
  • or — «или»: имя == "Анна" or имя == "Мария"
  • not — «не»: not (возраст < 18) — то же, что возраст >= 18

Пример:

имя = input("Как тебя зовут? ")
возраст = int(input("Сколько лет? "))

if имя == "Тимур" and возраст == 30:
print("Приветствую, создатель Вселенной IT!")
elif возраст >= 18 or имя == "Админ":
print("Доступ разрешён.")
else:
print("Добро пожаловать в детский клуб программистов!")

Циклы: повторение без копирования

Представьте, что нужно напечатать числа от 1 до 100. Писать print(1), print(2), …, print(100) — долго и скучно. Компьютеры созданы, чтобы повторять — для этого есть циклы.

Цикл while — «пока»

счётчик = 1
while счётчик <= 5:
print("Шаг", счётчик)
счётчик = счётчик + 1 # очень важно: иначе цикл будет бесконечным!

Результат:

Шаг 1
Шаг 2
Шаг 3
Шаг 4
Шаг 5

Как работает:

  • Проверяется условие: счётчик <= 5?
  • Если да — выполняется тело цикла (всё с отступом).
  • После этого — снова условие.
  • Цикл останавливается, когда условие становится ложным (False).

⚠️ Бесконечный цикл — частая ошибка новичков. Если забыть счётчик = счётчик + 1, то условие всегда будет истинным — и программа «зависнет». В IDLE и VS Code можно остановить выполнение через Ctrl+C.

Цикл for и range() — «для каждого»

Для перебора последовательностей (чисел, букв, элементов списка) удобнее for:

for i in range(1, 6):
print("Шаг", i)

range(1, 6) означает: числа от 1 включительно до 6 не включительно[1, 2, 3, 4, 5].
То есть range(a, b) — это полуоткрытый интервал: a ≤ i < b.

Можно сократить:

  • range(5)0, 1, 2, 3, 4
  • range(0, 10, 2)0, 2, 4, 6, 8 (шаг 2)

Пример: обратный отсчёт

for секунда in range(5, 0, -1):
print(секунда)
print("Пуск!")

Вывод:

5
4
3
2
1
Пуск!

Проект: «Викторина по Вселенной IT»

Теперь соберём всё вместе — создадим простую викторину.

print("Добро пожаловать в викторину 'Вселенная IT'!\n")

# Вопрос 1
ответ1 = input("1. Какой язык программирования назван в честь комедийного шоу 'Летающий цирк Монти Пайтона'? ")
if ответ1.lower() == "python": # .lower() — приводит к строчным буквам
print("✅ Верно!")
счёт = 1
else:
print("❌ Нет. Правильный ответ: Python.")
счёт = 0

# Вопрос 2
ответ2 = input("2. Какая команда выводит текст на экран в Python? ")
if ответ2.lower() in ["print", "print()"]:
print("✅ Отлично!")
счёт = счёт + 1
else:
print("❌ Это команда print().")

# Вопрос 3
ответ3 = input("3. Что означает 'IDE'? (Напиши по-русски) ")
if "среда" in ответ3.lower() and "разработки" in ответ3.lower():
print("✅ Точно!")
счёт = счёт + 1
else:
print("❌ Integrated Development Environment — интегрированная среда разработки.")

# Итог
print("\nИгра окончена!")
if счёт == 3:
print("🏆 Ты гуру IT-Вселенной!")
elif счёт == 2:
print("🌟 Хорошо! Почти идеально.")
else:
print("📚 Продолжай учиться — у тебя всё впереди!")

Здесь мы использовали:

  • input() — для ввода;
  • if/elif/else — для проверки;
  • .lower() — чтобы не зависеть от регистра (Python, PYTHON, python — всё равно);
  • in — оператор проверки вхождения (для частичного совпадения);
  • \n — символ новой строки (делает отступ между блоками).

Ошибки и отладка: почему программы «ломаются»

Ошибка в программировании — не провал, а обратная связь. Python пишет сообщения об ошибках (exceptions) настолько подробно, что часто можно сразу понять, где проблема.

Типичные ошибки новичков:

ОшибкаПримерПричина
NameErrorprint(привет)Переменная привет не определена (нет присваивания).
SyntaxErrorprint("Привет"Пропущена закрывающая кавычка или скобка.
TypeError"5" + 10Попытка сложить строку и число.
ValueErrorint("три")Невозможно превратить текст в число.

Как читать сообщение об ошибке?
Пример:

File "викторина.py", line 7, in <module>
возраст = int(input("..."))
ValueError: invalid literal for int() with base 10: 'двенадцать'
  • Указывает файл и строку: line 7.
  • Называет тип ошибки: ValueError.
  • Объясняет, что именно пошло не так: нельзя превратить 'двенадцать' в число.

👉 Правило отладки:

  1. Прочитайте последнюю строку сообщения — там суть.
  2. Посмотрите номер строки — найдите её в коде.
  3. Подумайте: что я ожидал, и что действительно оказалось в переменной?

Часто помогает временный print() — «подсмотреть» значение перед ошибкой:

ответ = input("Сколько будет 2+2? ")
print("DEBUG: ответ =", repr(ответ)) # repr() покажет кавычки и пробелы
результат = int(ответ)

Если введут " 4 " (с пробелами), repr() покажет ' 4 ', и вы поймёте: нужно убрать пробелы с помощью .strip()int(ответ.strip()).


Что дальше? Идеи для самостоятельных проектов

Теперь, когда вы умеете:

  • хранить данные в переменных;
  • спрашивать пользователя;
  • проверять условия;
  • повторять действия;

— можно создавать настоящие мини-приложения:

  1. Конвертер валют
    Ввод: сумма в рублях → вывод: в долларах и евро (по текущему курсу, пусть пока фиксированному).

  2. Генератор паролей
    Спрашивает длину → выводит случайный набор букв и цифр (используем import random, random.choice("abc123")).

  3. Камень-ножницы-бумага
    Компьютер выбирает случайно → сравнивает с выбором игрока → выводит победителя.

  4. "Чёрный ящик"
    Программа загадывает число от 1 до 100 → игрок угадывает → программа говорит «больше» или «меньше» → пока не попадёт.

  5. Дневник настроения
    Ввод: 1 (плохо), 2 (нормально), 3 (отлично) → сохраняет в файл (позже научимся), строит простую статистику.

Каждый из этих проектов — ступенька к пониманию: как из маленьких кирпичиков строится большая программа.


Краткий словарь терминов (для закрепления)

ТерминПростое объяснение
ПеременнаяКоробочка с именем, в которую можно класть значение и доставать его позже.
Тип данныхВид содержимого коробочки: число, текст, да/нет.
Преобразование типовПерекладывание из одной коробки в другую: число → текст (str), текст → число (int).
Условие (if)Разветвление дороги: если так — иди направо, иначе — налево.
Цикл (for, while)Автоматический повторитель: делай это N раз или пока условие истинно.
Ошибка (exception)Сигнал: «я не могу выполнить это действие». Не страшно — это подсказка.
ОтладкаПроцесс поиска и исправления ошибок. Как расследование: собираем улики (print), проверяем гипотезы.

Часть 3. Код как конструктор: функции и структуры данных

В предыдущих частях вы писали линейные программы: одна команда за другой. Это как собирать машину из конструктора, кладя детали друг на друга по инструкции в один проход. Но что, если вы захотите построить две одинаковые машины? Переписывать всю инструкцию снова? Нет — вы скажете: «повтори шаги 5–12». В программировании это называется функция.

Что такое функция?

Функция — это именованный блок кода, который можно вызвать по имени, передав ему нужные данные и получив результат.

Аналогия:

Представьте, что у вас есть инструкция «Сделать бутерброд»:

  1. Возьми хлеб.
  2. Намажь маслом.
  3. Положи сыр.
  4. Накрой вторым ломтиком.

Эта инструкция — функция. Вы можете вызвать её трижды: «Сделай бутерброд» → «Сделай бутерброд» → «Сделай бутерброд» — и получить три бутерброда. А если захотите вместо сыра — ветчину? Передадите параметр: «Сделай бутерброд с ветчиной».

Простейшая функция без параметров

def приветствие():
print("Привет!")
print("Добро пожаловать в Вселенную IT!")

# Вызов функции
приветствие()
приветствие()
  • def — сокращение от define («определить»).
  • приветствие — имя функции (должно быть понятным и описательным).
  • () — скобки обязательны, даже если параметров нет.
  • Тело функции — с отступом (четыре пробела).
  • После определения функцию нужно вызвать, иначе она не выполнится.

Функция с параметром

def приветствие_по_имени(имя):
print("Привет,", имя + "!")
print("Рады тебя видеть!")

приветствие_по_имени("Анна")
приветствие_по_имени("Борис")

Здесь имяпараметр (переменная внутри функции), а "Анна"аргумент (конкретное значение, переданное при вызове).

Функция, возвращающая результат

До сих пор функции только выводили что-то. Но часто нужно, чтобы функция посчитала и вернула значение — как калькулятор.

def площадь_квадрата(сторона):
результат = сторона * сторона
return результат # ключевое слово return

s1 = площадь_квадрата(5)
s2 = площадь_квадрата(10)
print("Площади:", s1, "и", s2) # → 25 и 100

Можно упростить:

def площадь_квадрата(a):
return a * a

💡 Важно:

  • После return функция немедленно завершается.
  • Функция может возвращать любое значение: число, строку, даже список или словарь (об этом — дальше).
  • Если return нет, функция возвращает None (специальное значение «ничего»).

Списки: когда одной переменной недостаточно

Представьте, что вы хотите хранить имена всех участников кружка. Можно сделать так:

участник1 = "Анна"
участник2 = "Борис"
участник3 = "Вика"

Но если участников 30? А если их число меняется? Это неудобно.

Список (list) — это упорядоченный набор значений, хранящийся в одной переменной. Элементы нумеруются с нуля (это важно!).

Создание и обращение

имена = ["Анна", "Борис", "Вика", "Глеб"]

print(имена[0]) # → "Анна"
print(имена[2]) # → "Вика"
print("Всего участников:", len(имена)) # len() — длина списка

Изменение списка

Списки — изменяемые (mutable), то есть их можно дополнять и менять:

# Добавить в конец
имена.append("Даша")

# Вставить на позицию 1
имена.insert(1, "Женя") # теперь: ["Анна", "Женя", "Борис", ...]

# Заменить элемент
имена[0] = "Анна-Мария"

# Удалить по значению
имена.remove("Борис")

# Удалить по индексу
del имена[2]

Перебор списка — for в действии

for имя in имена:
print("Привет,", имя + "!")

Это работает так: переменная имя поочерёдно принимает каждое значение из списка.


Словари: когда нужно искать по названию, а не по номеру

Списки удобны, когда порядок важен. Но что, если вы хотите хранить информацию о человеке: имя, возраст, хобби? И получать данные по смыслу — не «элемент 2», а «возраст»?

Для этого — словарь (dict): набор пар ключ → значение.

анна = {
"имя": "Анна",
"возраст": 12,
"хобби": ["рисование", "программирование"],
"класс": "6Б"
}

print(анна["имя"]) # → "Анна"
print(анна["возраст"]) # → 12
print(анна["хобби"][0]) # → "рисование" (первое хобби)

Преимущества словарей:

  • Доступ по понятному имени, а не по номеру.
  • Гибкость: можно добавлять новые поля.
  • Вложенность: значения могут быть списками, другими словарями и т.д.

Пример: список участников как список словарей:

участники = [
{"имя": "Анна", "возраст": 12},
{"имя": "Борис", "возраст": 13},
{"имя": "Вика", "возраст": 11}
]

for человек in участники:
print(человек["имя"], "—", человек["возраст"], "лет")

Работа с файлами: сохраняем результаты навсегда

До сих пор все данные исчезали после закрытия программы. Но настоящие программы умеют читать и писать файлы — как блокнот, только автоматически.

Запись в файл

with open("дневник.txt", "w", encoding="utf-8") as файл:
файл.write("Сегодня я научился писать функции!\n")
файл.write("Это мой первый шаг в программировании.\n")
  • with open(...) — «открой файл и автоматически закрой, даже если будет ошибка».
  • "w" — режим записи (write). Если файл был — он перезапишется.
  • encoding="utf-8" — обязательно для русского текста.
  • \n — символ новой строки.

Чтение из файла

with open("дневник.txt", "r", encoding="utf-8") as файл:
содержимое = файл.read()
print(содержимое)
  • "r" — режим чтения (read), по умолчанию.

Построчное чтение (для больших файлов)

with open("имена.txt", "r", encoding="utf-8") as файл:
for строка in файл:
строка = строка.strip() # убираем \n в конце
print("Привет,", строка + "!")

💡 Почему strip()?
Потому что readline() и for строка in файл сохраняют символ перевода строки (\n) в конце. strip() удаляет пробелы и \n по краям.


Черепашья графика (turtle): рисуем кодом

Python включает встроенную библиотеку turtle — виртуальную «черепашку», которая ползает по экрану и оставляет след. Это — один из самых удачных способов увидеть результат своих команд визуально.

Простейший пример

import turtle

черепаха = turtle.Turtle() # создаём черепашку
черепаха.forward(100) # вперёд на 100 пикселей
черепаха.right(90) # повернуть направо на 90°
черепаха.forward(100)

turtle.done() # оставить окно открытым

Результат — прямой угол (две стороны квадрата).

Цикл + графика = квадрат

import turtle
t = turtle.Turtle()

for i in range(4):
t.forward(100)
t.right(90)

turtle.done()

Цвет, скорость, заливка

import turtle
t = turtle.Turtle()
t.speed(5) # от 1 (медленно) до 10 (быстро); 0 — мгновенно

t.color("blue") # цвет линии
t.fillcolor("yellow") # цвет заливки
t.begin_fill() # начать заливку

for _ in range(3): # _ — имя, когда значение не нужно
t.forward(120)
t.left(120)

t.end_fill() # закончить заливку
turtle.done()

Получится жёлтый треугольник с синими краями.

💡 Почему t?
Это сокращение — как «ручка» (pen) или «инструмент». Можно писать t, pen, turtle1 — главное, чтобы было понятно.

Идеи для проектов с turtle:

  • Узоры (спирали, звёзды, цветы);
  • Простая анимация: солнце → движущееся солнце;
  • Игра «Угадай фигуру»: программа рисует — пользователь называет;
  • График настроения за неделю (столбики разной высоты).

От функций — к проектам: как собрать всё вместе

Рассмотрим, как перейти от упражнений к реальному мини-проекту — например, «Дневник настроения».

Этапы разработки:

  1. Постановка задачи:
    — Спрашивать настроение раз в день (1–5 баллов).
    — Сохранять в файл.
    — Выводить среднее и график за неделю.

  2. Разбиение на функции:

    • спросить_настроение() → возвращает число 1–5.
    • сохранить_в_файл(значение) → дописывает в настроение.txt.
    • загрузить_данные() → возвращает список чисел.
    • построить_график(данные) → рисует через turtle.
  3. Реализация (упрощённая):

# 1. Сбор данных
def спросить_настроение():
while True:
ответ = input("Оцени своё настроение от 1 (плохо) до 5 (отлично): ")
try:
балл = int(ответ)
if 1 <= балл <= 5:
return балл
else:
print("Должно быть от 1 до 5.")
except ValueError:
print("Нужно ввести число!")

# 2. Сохранение
def сохранить_в_файл(балл):
with open("настроение.txt", "a", encoding="utf-8") as f:
f.write(str(балл) + "\n")

# 3. Загрузка
def загрузить_данные():
try:
with open("настроение.txt", "r", encoding="utf-8") as f:
строки = f.readlines()
return [int(s.strip()) for s in строки]
except FileNotFoundError:
return [] # файла ещё нет — пустой список

# 4. Запуск
if __name__ == "__main__":
балл = спросить_настроение()
сохранить_в_файл(балл)
данные = загрузить_данные()
print("Твои оценки за всё время:", данные)
if данные:
среднее = sum(данные) / len(данные)
print(f"Среднее настроение: {среднее:.1f}")

Обратите внимание на:

  • try/except — защита от ошибок (файл не найден, не число);
  • "a" — режим дописывания (append), не перезаписи;
  • if __name__ == "__main__": — стандартная практика: код запустится, только если файл запущен напрямую, а не импортирован.

Как расти дальше: от «черепашки» к «большим» библиотекам

Python — это не только встроенные возможности. Его сила — в библиотеках: готовых наборах функций, написанных другими программистами.

БиблиотекаДля чегоПример подключения
randomСлучайные числа, выбор элементовimport random
datetimeРабота с датой и временемfrom datetime import datetime
requestsЗапросы в интернет (получить данные с сайта)import requests
pygameСоздание игрimport pygame
matplotlibГрафики и диаграммыimport matplotlib.pyplot as plt

Установка (в командной строке):

pip install имя_библиотеки

(например, pip install pygame)

⚠️ pip — это менеджер пакетов Python. Он автоматически скачивает и устанавливает библиотеки из открытого хранилища PyPI. Он идёт в комплекте с Python 3.4+.


Полезные привычки начинающего программиста

  1. Называйте всё понятно
    Не a, b, x1 — а средняя_температура, имя_пользователя, количество_шагов.

  2. Пишите комментарии, но не слишком
    Хороший комментарий объясняет почему, а не что.

    # Плохо: score = score + 1  # увеличиваем счёт на 1  
    # Хорошо: score = score + 1 # за правильный ответ — +1 балл
  3. Тестируйте по частям
    Написали функцию — сразу проверьте её отдельно, до подключения к остальному коду.

  4. Делайте резервные копии
    Сохраняйте файлы с датой: викторина_2025-11-10.py. Или используйте простую систему контроля версий — даже обычную папку backup.

  5. Не бойтесь «плохого» кода
    Первая версия может быть неидеальной. Главное — чтобы работала. Потом — улучшайте.